<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<c:set var="basePath" value="${pageContext.request.contextPath}"/>
<!DOCTYPE HTML>
<html lang="zh-cn">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>数据字典管理</title>
    <jsp:include page="/resources/inc/head.jsp" flush="true"/>
</head>
<body>
<div id="main">
    <div id="toolbar">
        <shiro:hasPermission name="upms:dict:create"><a class="waves-effect waves-button" href="javascript:;" onclick="createAction()"><i class="zmdi zmdi-plus"></i> 新增数据字典</a></shiro:hasPermission>
        <shiro:hasPermission name="upms:dict:update"><a class="waves-effect waves-button" href="javascript:;" onclick="updateAction()"><i class="zmdi zmdi-edit"></i> 编辑数据字典</a></shiro:hasPermission>
        <shiro:hasPermission name="upms:dict:delete"><a class="waves-effect waves-button" href="javascript:;" onclick="deleteAction()"><i class="zmdi zmdi-close"></i> 删除数据字典</a></shiro:hasPermission>
        <shiro:hasPermission name="upms:dict:cacherefresh"><a class="waves-effect waves-button" href="javascript:;" onclick="cacheRefreshAction()"><i class="zmdi zmdi-key"></i> 刷新缓存</a></shiro:hasPermission>
    </div>
    <table id="table"></table>
</div>
<jsp:include page="/resources/inc/footer.jsp" flush="true"/>
<script>
    var $table = $('#table');
    $(function() {
        // bootstrap table初始化
        $table.bootstrapTable({
            url: '${basePath}/manage/dict/list',
            height: getHeight(),
            dataField:"rows",
            search: true,
            showRefresh: true,
            showColumns: true,
            clickToSelect: true,
            pagination: true,
            paginationLoop: false,
            sidePagination: 'server',
            silentSort: false,
            smartDisplay: false,
            escape: true,
            searchOnEnterKey: true,
            idField: 'id',
            maintainSelected: true,
            toolbar: '#toolbar',
            columns: [
                {field: 'ck', checkbox: true},
                {field: 'id', title: '编号'},
                {field: 'dicCode', title: '字典代码'},
                {field: 'dicName', title: '字典名称'},
                {field: 'dicValue', title: '字典值'},
                {field: 'flag', title: '状态'},
                {field: 'sequence', title: '排列顺序'},
                {field: 'dicText', title: '描述'},
                {field: 'action', title: '操作', align: 'center', formatter: 'actionFormatter', events: 'actionEvents', clickToSelect: true}
            ]
        });
    });
    window.actionEvents = {
        <shiro:hasPermission name="upms:dict:update">
        'click .update': function(e, value, row, index) {
            updateAction([row]);
        },
        </shiro:hasPermission>
        <shiro:hasPermission name="upms:dict:delete">
        'click .delete': function(e, value, row, index) {
            deleteAction([row]);
        }
        </shiro:hasPermission>
    };

    // 格式化操作按钮
    function actionFormatter(value, row, index) {
        return [
            <shiro:hasPermission name="upms:dict:update">
            '<a class="update" href="javascript:;" data-toggle="tooltip" title="Edit"><i class="glyphicon glyphicon-edit"></i></a>　',
            </shiro:hasPermission>
            <shiro:hasPermission name="upms:dict:delete">
            '<a class="delete" href="javascript:;" data-toggle="tooltip" title="Remove"><i class="glyphicon glyphicon-remove"></i></a>'
            </shiro:hasPermission>
        ].join('');
    }
    // 新增
    var createDialog;
    function createAction(rows) {
        var url = 'url:${basePath}/manage/dict/create/-1';
        createDialog = openDialog(url,'新增数据字典')
    }
    // 编辑
    var updateDialog;
    function updateAction(rows) {
        if(!rows)
            rows = $table.bootstrapTable('getSelections');
        if (rows.length != 1) {
            infoDialog('请选择一条记录！');
        } else {
            updateDialog = openDialog('url:${basePath}/manage/dict/update/'+rows[0].id,'编辑数据字典');
        }
    }
    // 删除
    var deleteDialog;
    function deleteAction(rows) {
        if(!rows)
            rows = $table.bootstrapTable('getSelections');
        if (rows.length == 0) {
            infoDialog( '请至少选择一条记录！');
        } else {
            deleteDialog = confirmDialog('确认删除选中的数据字典吗？',function(){
                var ids = new Array();
                for (var i in rows) {
                    ids.push(rows[i].id);
                }
                $.ajax({dataType: 'json',
                    type: 'get',
                    url: '${basePath}/manage/dict/delete/' + ids.join("-"),
                    success: function(result) {
                        if (result.code != 1) {
                            if (result.data instanceof Array) {
                                $.each(result.data, function(index, value) {
                                    infoDialog(value.errorMsg);
                                });
                            } else {
                                infoDialog(result.data);
                            }
                        } else {
                            deleteDialog.close();
                            $table.bootstrapTable('refresh');
                        }
                    },
                    error: function(XMLHttpRequest, textStatus, errorThrown) {
                        infoDialog(textStatus);
                    }
                });
            });
        }
    }

    // 刷新缓存
    var cacheRefreshDialog;
    function cacheRefreshAction(rows) {
        cacheRefreshDialog = confirmDialog('确认刷新数据字典缓存吗？',function(){
            $.ajax({
                dataType: 'json',
                type: 'get',
                url: '${basePath}/manage/dict/cacherefresh',
                success: function(result) {
                    if (result.code != 1) {
                        if (result.data instanceof Array) {
                            $.each(result.data, function(index, value) {
                                infoDialog(value.errorMsg);
                            });
                        } else {
                            infoDialog(result.data);
                        }
                    } else {
                        infoDialog("操作成功");
                    }
                },
                error: function(XMLHttpRequest, textStatus, errorThrown) {
                    infoDialog(textStatus);
                }
            });
        });
    }
</script>
</body>
</html>